﻿using System;
using System.Collections.Generic;

namespace RaisingStudio.SmallProgram.Library
{
    [SmallProgramType]
    public static class Shapes
    {
        private static Dictionary<string, int> _nameGenerationMap = new Dictionary<string, int>();
        private static object _nameGenerationMapLock = new object();

        internal static string GenerateNewName(string prefix)
        {
            lock (_nameGenerationMapLock)
            {
                int num = 0;
                _nameGenerationMap.TryGetValue(prefix, out num);
                num++;
                _nameGenerationMap[prefix] = num;
                return (prefix + num.ToString());
            }
        }


        public static Primitive AddEllipse(Primitive width, Primitive height)
        {
            // TODO:
            return null;
        }

        public static Primitive AddImage(Primitive imageName)
        {
            // TODO:
            return null;
        }

        public static Primitive AddLine(Primitive x1, Primitive y1, Primitive x2, Primitive y2)
        {
            // TODO:
            return null;
        }

        public static Primitive AddRectangle(Primitive width, Primitive height)
        {
            // TODO:
            return null;
        }

        public static Primitive AddText(Primitive text)
        {
            // TODO:
            return null;
        }

        public static Primitive AddTriangle(Primitive x1, Primitive y1, Primitive x2, Primitive y2, Primitive x3, Primitive y3)
        {
            // TODO:
            return null;
        }

        public static void Animate(Primitive shapeName, Primitive x, Primitive y, Primitive duration)
        {
            // TODO:
        }


        public static Primitive GetLeft(Primitive shapeName)
        {
            // TODO:
            return null;
        }

        public static Primitive GetOpacity(Primitive shapeName)
        {
            // TODO:
            return null;
        }

        public static Primitive GetTop(Primitive shapeName)
        {
            // TODO:
            return null;
        }

        public static void HideShape(Primitive shapeName)
        {
            // TODO:
        }

        public static void Move(Primitive shapeName, Primitive x, Primitive y)
        {
            // TODO:
        }

        public static void Remove(Primitive shapeName)
        {
            // TODO:
        }

        public static void Rotate(Primitive shapeName, Primitive angle)
        {
            // TODO:
        }

        public static void SetOpacity(Primitive shapeName, Primitive level)
        {
            // TODO:
        }

        public static void SetText(Primitive shapeName, Primitive text)
        {
            // TODO:
        }

        public static void ShowShape(Primitive shapeName)
        {
            // TODO:
        }

        public static void Zoom(Primitive shapeName, Primitive scaleX, Primitive scaleY)
        {
            // TODO:
        }
    }
}

